package com.yeren.list.arrayList.listDemo;
/**
 * 表示二维坐标系上的一个点
 * 当前类的实例若需要比较大小
 * 我们需要实现一个接口Comparable
 * 通常该接口指定的范型类型就是当前类
 * @author Administrator
 */
public class P implements Comparable<P>{
	private int x;
	private int y;
	public P(int x, int y) {
		this.x = x;
		this.y = y;
	}
	public String toString() {
		return "(" + x + "," + y + ")";
	}
	/*
	 * 1.Collections的sort方法是对集合元素进行自然排序，那么两个元素对象之间就 一定要有大小之分。
	 *   这个大小之分是如何界定的呢？实际上，在使用Collections的sort排序的集合元素都必须是
	 *   Comparable接口的实现类，该接口表示其子类是可比较的，因为实现该接口必须重写抽象方法：
	 * 2.int compareTo(T t)
	 *   该方法用于使当前对象与给定对象进行比较
	 *   若当前对象大于给定对象，那么返回值应为>0的整数。
	 *   若小于给定对象，那么返回值应为<0的整数。
	 *   若两个对象相等，则应返回0。
	 * @see java.lang.Comparable#compareTo(java.lang.Object)
	 */
	public int compareTo(P o){
		int len=this.x*this.x+this.y*this.y;
		int olen=o.x*o.x+o.y*o.y;
		return len-olen;
	}
}